//
//  LZTopic.m
//  LZBS
//
//  Created by 郝庆 on 16/6/10.
//  Copyright © 2016年 haoqing. All rights reserved.
//

#import "LZTopic.h"
#import "LZComment.h"
#import "LZUser.h"

@implementation LZTopic

static NSDateFormatter *fmt_;
static NSCalendar *calendar_;

/**
 *  在第一次使用LZTopic类时调用1次
 */
+ (void)initialize
{
    fmt_ = [[NSDateFormatter alloc] init];
    calendar_ = [NSCalendar lz_calendar];
}

- (NSString *)created_at
{
    // 获得发帖日期
    fmt_.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSDate *createdAtDate = [fmt_ dateFromString:_created_at];
    // 手机当前时间
    NSDate *nowDate = [NSDate date];
    // 比较时间
    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    NSDateComponents *cmps = [calendar_ components:unit fromDate:createdAtDate toDate:nowDate options:0];
    if (createdAtDate.lz_isThisYear) { // 今年
        if (createdAtDate.lz_isToday) { // 今天
            if (cmps.hour >= 1) { // 时间间隔 >= 1小时
                return [NSString stringWithFormat:@"%zd小时前", cmps.hour];
            } else if (cmps.minute >= 1) { // 1小时 > 时间间隔 >= 1分钟
                return [NSString stringWithFormat:@"%zd分钟前", cmps.minute];
            } else { // 1分钟 > 分钟
                return @"刚刚";
            }
        } else if (createdAtDate.lz_isYesterday) { // 昨天
            fmt_.dateFormat = @"昨天 HH:mm";
            return [fmt_ stringFromDate:createdAtDate];
        } else { // 今年的其他日子
            fmt_.dateFormat = @"MM-dd";
            return [fmt_ stringFromDate:createdAtDate];
        }
    } else { // 非今年
        fmt_.dateFormat = @"yyyy-MM-dd";
        return [fmt_ stringFromDate:createdAtDate];
    }

}

- (CGFloat)cellHeight
{
    // 避免每次有cell出现在视野范围内都计算一遍cellHeight
    if (_cellHeight) return _cellHeight;
    
    // 1.头像
    _cellHeight = 55;
    
    // 2.文字
    CGFloat textMaxW = [UIScreen mainScreen].bounds.size.width - 2 * LZMargin;
    CGSize textMaxSize = CGSizeMake(textMaxW, MAXFLOAT);
    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
    paraStyle.lineSpacing = 10;
    CGSize textSize = [self.text boundingRectWithSize:textMaxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15],NSParagraphStyleAttributeName : paraStyle} context:nil].size;
    _cellHeight += textSize.height + LZMargin;
    
    // 3.中间的内容
    if (self.type != LZTopicTypeWord) { // 如果是图片\声音\视频帖子, 才需要计算中间内容的高度
        
        // 中间内容的高度 == (中间真实的宽度 / 图片的内容宽度) * 图片的真实高度
        CGFloat contentH = (textMaxW / self.width) * self.height;
        
        if (contentH >= [UIScreen mainScreen].bounds.size.height) { // 超长图片
            // 将超长图片的高度变为200
            contentH = 200;
            self.bigPicture = YES;
        }
        
        // 中间控件的的frame
        self.contentFrame = CGRectMake(LZMargin, _cellHeight, textMaxW, contentH);
        
        // 累加中间内容的高度
        _cellHeight += contentH + LZMargin;
    }
    
    // 4.最热评论
    if (self.top_cmt) { // 如果有最热评论
        // 最热评论-标题
        _cellHeight += 20;
        // 最热评论-内容
        NSString *topCmtContent = [NSString stringWithFormat:@"%@ : %@", self.top_cmt.user.username, self.top_cmt.content];
        CGSize topCmtContentSize = [topCmtContent boundingRectWithSize:textMaxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14]} context:nil].size;
        _cellHeight += topCmtContentSize.height + LZMargin;
    }
    
    // 5.底部 - 工具条
    _cellHeight += 35 + LZMargin;
    
    
    return _cellHeight;
}
@end
